home *** CD-ROM | disk | FTP | other *** search
- #ifndef _SANA2METER_H
- #define _SANA2METER_H
- /*
- ** $VER: sana2meter.h 1.0 (25 Apr 1996)
- **
- ** (C) Copyright 1996 Marius Gröger
- ** All Rights Reserved
- **
- ** $HISTORY:
- **
- ** 25 Mar 1996 : 001.000 : created
- */
-
- /*F*/ /* includes */
- #include <exec/libraries.h>
- #include <exec/devices.h>
- #include <exec/memory.h>
- #include <exec/io.h>
- #include <libraries/gadtools.h>
- #include <workbench/startup.h>
- #include <utility/tagitem.h>
- #include <netinclude:devices/sana2.h>
- #include "compiler.h"
- #include "SANA2Meter_rev.h"
- /*E*/
-
- /*F*/ /* struct TrackType */
- struct TrackType
- {
- ULONG tt_Type;
- UBYTE tt_Label[30];
- UBYTE tt_Key[12];
- ULONG tt_Flags;
- struct Sana2PacketTypeStats tt_Stats;
- };
-
- #define TTF_ACTIVE (1<<0)
- #define TTF_TRACKED (1<<1)
- #define TTF_INITIAL_OPACKETS (1<<2)
- #define TTF_INITIAL_IPACKETS (1<<3)
- #define TTF_INITIAL_OBYTES (1<<4)
- #define TTF_INITIAL_IBYTES (1<<5)
- #define TTF_INITIAL_DPACKETS (1<<6)
- #define TTF_INITIAL_SETUP (1<<7)
- /*E*/
- /*F*/ /* enum Member, struct NewWatch, struct Watch */
-
- enum Member
- {
- MEMBER_NONE,
- MEMBER_DEVICEQUERY,
- MEMBER_GLOBALSTATS,
- MEMBER_SPECIALSTATS,
- MEMBER_TRACKTYPE
- };
-
- struct NewWatch
- {
- enum Member nw_Member; /* classification */
- STRPTR nw_ShortKey; /* abbreviated option keyword */
- STRPTR nw_Key; /* option keyword */
- LONG nw_LabelID; /* locale ID */
- ULONG nw_StructOffset;
- ULONG nw_Flags; /* see WF_#? below */
- };
-
- struct Watch
- {
- struct MinNode w_Link;
- enum Member w_Member; /* copy of NewWatch */
- STRPTR w_ShortKey; /* abbreviated option keyword */
- STRPTR w_Key; /* copy of NewWatch */
- struct TrackType * w_TrackType; /* only if (w_Member == MEMBER_TRACKTYPE) */
- STRPTR w_Label; /* translated localeid */
- ULONG w_Flags; /* copy of NewWatch */
- ULONG w_ID; /* for GUI */
- ULONG * w_Value; /* pointer to monitored value */
- };
- #define WF_ACTIVE (1<<0)
- #define WF_STATIC (1<<1)
- #define WF_FIRSTTT (1<<2)
- #define WF_NOLABEL (1<<3)
- #define WF_OFF (1<<4)
-
- #define SCANWATCHES(w, list) for(w = (struct Watch*)((list)->mlh_Head); w->w_Link.mln_Succ; w=(struct Watch*)w->w_Link.mln_Succ)
-
- /*E*/
- /*F*/ /* device management data structures */
-
- /* Global data structures that will be passed to other system components */
- struct PublicDevData
- {
- struct IOSana2Req pd_S2Req;
- struct Sana2DeviceQuery pd_S2DeviceQuery;
- struct Sana2DeviceStats pd_S2DeviceStats;
- struct TrackType * pd_TrackedTypes;
- struct Sana2SpecialStatHeader pd_S2SpecialStats;
- struct Sana2SpecialStatRecord pd_S2SpecialStatRecs[1];
- };
- /* Global data structures that will be used locally only */
- struct GlobalDevData
- {
- struct MinNode gd_Link;
- int gd_GetGlobalStats : 1;
- int gd_GetSpecialStats : 1;
- int gd_GetTrackType : 1;
- int gd_ShowDevQuery : 1;
- int gd_Force : 1;
- int gd_Active : 1;
- int gd_FromConfig : 1;
- LONG gd_Unit;
- LONG gd_ValidSpecialStats;
- struct MinList gd_Watches;
- struct Watch * gd_StdWatches;
- ULONG gd_NumTT;
- struct Watch * gd_TrackWatches;
- struct PublicDevData * gd_Public;
- UBYTE gd_Title[36];
- UBYTE gd_Device[1]; /* MUST be last member! */
- };
- #define SCANDEVS(d, list) for(d = (struct GlobalDevData*)((list)->mlh_Head); d->gd_Link.mln_Succ; d=(struct GlobalDevData*)d->gd_Link.mln_Succ)
-
- /*E*/
- /*F*/ /* global storage anchor */
-
- typedef struct PublicData
- {
- struct timerequest pd_TReq;
- struct TTextAttr pd_Font;
- UBYTE pd_Fontname[32];
- UBYTE pd_Pubscreen[MAXPUBSCREENNAME];
- UBYTE pd_Console[100];
- } *PD;
-
- /* Global data structures that will be used locally only */
- typedef struct GlobalData
- {
- /* System related stuff */
- struct Library * gd_SysBase,
- * gd_UtilityBase,
- * gd_GadToolsBase,
- * gd_GTLayoutBase,
- * gd_IntuitionBase,
- * gd_IconBase,
- * gd_DOSBase;
- struct Task * gd_We;
- struct MsgPort * gd_S2Port;
- struct MsgPort * gd_TPort;
- void * gd_AnyPool;
- void * gd_PubPool;
- /* Timing related stuff */
- struct timeval gd_time;
- /* DOS/Arguments related stuff */
- UBYTE gd_ProgramName[80];
- ULONG gd_argc;
- UBYTE ** gd_argv;
- BPTR gd_Input;
- BPTR gd_Output;
- struct MsgPort * gd_OldConsoleTask;
- BPTR gd_OldInput;
- BPTR gd_OldOutput;
- /* Locale related stuff */
- struct LocaleInfo gd_LocaleInfo;
- /* Flags related to anything */
- ULONG gd_Refresh;
- int gd_CustomFont : 1;
- int gd_List : 1;
- int gd_CLI : 1;
- int gd_InputSelected : 1;
- int gd_OutputSelected : 1;
- int gd_CTSelected : 1;
- int gd_Inactive : 1;
- int gd_ToBack : 1;
- int gd_NeedTimer : 1;
- int gd_TimerOff : 1;
- /* Config related stuff */
- int gd_HadRefresh : 1;
- int gd_HadLeft : 1;
- int gd_HadTop : 1;
- int gd_HadWindowToBack : 1;
- int gd_HadFont : 1;
- int gd_HadInactive : 1;
- int gd_HadPubscreen : 1;
- STRPTR gd_ConfigName;
- /* GUI related stuff */
- struct LayoutHandle * gd_Handle;
- struct NewMenu * gd_NewMenu;
- struct NewMenu * gd_WatchStart;
- struct NewMenu * gd_DevSelStart;
- struct Menu * gd_Menu;
- WORD gd_Left;
- WORD gd_Top;
- /* structure extensions */
- struct MinList gd_Devices; /* List of GlobalDevData */
- ULONG gd_NumDevices;
- ULONG gd_NumActives;
- PD gd_Public;
- } *GD;
-
- #ifdef __SASC
- /*
- ** redirect all shared library bases to our device base.
- */
- # define SysBase gd->gd_SysBase
- # define GadToolsBase gd->gd_GadToolsBase
- # define GTLayoutBase gd->gd_GTLayoutBase
- # define DOSBase gd->gd_DOSBase
- # define UtilityBase gd->gd_UtilityBase
- # define LocaleBase gd->gd_LocaleInfo.li_LocaleBase
- # define IconBase gd->gd_IconBase
- # define IntuitionBase gd->gd_IntuitionBase
- /*
- ** This macro declares a local variable which temporary gets
- ** SysBase directly from AbsExecBase.
- */
- # define LOCALSYSBASE struct { void *gd_SysBase; } *gd = (void*)0x4
- #else
- # error Please define library bases for your compiler
- #endif
-
- /*
- ** Pool settings
- */
- #define PUBPOOLKIND (MEMF_PUBLIC|MEMF_CLEAR)
- #define PUBPOOLPUDDLE (4*1024)
- #define PUBPOOLTHRESH (3*1024)
- #define ANYPOOLKIND (MEMF_ANY|MEMF_CLEAR)
- #define ANYPOOLPUDDLE (4*1024)
- #define ANYPOOLTHRESH (3*1024)
-
- /*E*/
-
- #endif
-
-